using System;
using System.Collections.Generic;
using System.Configuration;

namespace Needle.Core.Configuration {
    /// <summary>
    /// The collection of injected methods
    /// </summary>
    public class MethodElementCollection : NeedleElementCollection {
   
        /// <summary>
        /// Create a new element.
        /// </summary>
        protected override ConfigurationElement CreateNewElement() {
            return new MethodElement();
        }

        /// <summary>
        /// gets the key of the property element (the name).
        /// </summary>
        protected override object GetElementKey(ConfigurationElement element) {
            return ((MethodElement)element).Name;
        }

        /// <summary>
        /// The name of the item xml element.
        /// </summary>
        protected override string ElementName {
            get {
                return Element.Method;
            }
        }

        internal IList<Needle.Core.Injection.IInjectionSite> GetInjectionSites(Type injectedType)
        {
            throw new NotImplementedException();
        }

    }
}
